import React, { Component } from 'react'
import cookie from 'react-cookie';
import { browserHistory } from 'react-router';
import { Spin } from 'antd';

export let FetchEnhance = ComposedComponent => class extends Component {
    constructor(props) {
        super(props);
        this.state = { jsonData: null };
    }
    componentWillMount() {
        let url = this.props.url; //从组件标签中接收的 props
        $.ajax({
            url: url,
            type: 'get',
            dataType: 'json',
            success: function (resData) {
                console.log("resData------------", JSON.stringify(resData));
                let errCode = resData.errCode;
                if(errCode == "100"){
                    console.log("登录超时了！");
                    //清除登录cookie
                    cookie.remove("userId");
                    cookie.remove("userPwd");
                    // window.location.hash = "/";
                    browserHistory.push('/main');
                    return;
                }

                this.setState({jsonData: resData})
            }.bind(this)
        })


        // fetch(url)
        //     .then((res) => {
        //         if(res.ok){
        //             return res.json();
        //         }else{
        //             console.log('请求失败，状态码为', res.status);
        //         }
        //     })
        //     .then((resData) => {
        //         let errCode = resData.errCode;
        //         if(errCode == "100"){
        //             console.log("登录超时了！");
        //             //清除登录cookie
        //             cookie.remove("userId");
        //             cookie.remove("userPwd");
        //             // window.location.hash = "/";
        //             browserHistory.push('/main');
        //             return;
        //         }
        //
        //         this.setState({jsonData: resData.data})
        //     })
        //     .catch((e) => {
        //         console.log(e.message)
        //     });

        // fetch(url,{
        //     method:"post",
        //     headers:{
        //         "Content-type":"application:/x-www-form-urlencoded:charset=UTF-8"
        //     },
        //     body:"name=lulingniu&age=40"
        // })
        // .then(status)
        // .then(json)
        // .then(function(data){
        //     console.log("请求成功，JSON解析后的响应数据为:",data);
        // })
        // .catch(function(err){
        //     console.log("Fetch错误:"+err);
        // });

    }
    render() {
        console.log("this.state.jsonData------------", JSON.stringify(this.state.jsonData));
        //console.log("=====this.state.jsonData.length", this.state.jsonData.length);
        if(this.state.jsonData != null ){
            console.log("有值了");
            return <ComposedComponent {...this.props} fetchData={this.state.jsonData} />;
        }else {
            return (<Spin size="large" />);
        }

    }
};
